package com.whacos.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.whacos.common.entity.Tree;
import com.whacos.modules.system.entity.SysMenu;

import java.util.List;
import java.util.Set;

/**
 * @author xiongdun
 * @description SysMenuService 系统菜单
 * @since 2018/11/17 17:11
 */
//@Service
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 获取系统菜单
     * @param userId
     * @return
     */
    Tree<SysMenu> getSysMenuTreeByUserId(Long userId);

    /**
     * 查询菜单列表
     * @param userId
     * @return
     */
    List<Tree<SysMenu>> listSysMenuTreeByUserId(Long userId);

    /**
     * 查询所有菜单树
     * @return
     */
    Tree<SysMenu> getTree();

    /**
     * 按 roleId 角色Id 查询菜单树
     * @param roleId
     * @return
     */
    Tree<SysMenu> getTreeByRoleId(Long roleId);

    /**
     * 查询用户所拥有的权限
     * @param userId
     * @return
     */
    Set<String> listPermissionByUserId(Long userId);

    /**
     * 查询所有权限
     * @return
     */
    Set<String> listAllPermissions();

}
